<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="IBM Software Development Platform">
<TITLE>Aurora Use Case Analysis Document: &lt;&lt;Feature Name&gt;&gt;</TITLE>
<LINK rel="stylesheet" href="technote.css" type="text/css">
</HEAD>
<BODY>
<A name="top"></A><IMG border="0" src="logo.gif" width="629" height="192"><H1 align="center">RMP Use Case Analysis Document:Image Display Support</H1>
<TABLE border="0" cellspacing="8">
	<TBODY>
		<TR>
			<TD>Version: 0.1</TD>
			<TD>Date: 05/02/24</TD>
		</TR>
	</TBODY>
</TABLE>
<H2>Contents</H2>
<UL>
	<LI><A href="#intro">Introduction</A></LI>
	<LI><A href="#refs">References</A></LI>
	<LI><A href="#trace">Traceability</A></LI>
	<LI><A href="#reqs">Requirements</A></LI><LI><A href="#constraints">Constraints and Limitations</A></LI>
	<LI><A href="#usecases">Use Cases</A></LI></UL>
<HR>
<H2><A name="intro"></A>Introduction</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P>The purpose of this feature is to allow users to adorn their diagram with  images such as GIF / JPG / SVG. The user may wish to demonstrate some information that is not part of the semantic model, either to enhance the cosmetic appeal of the diagram or to help further the point of the diagram to trying to convey. The mechanism to do this would be through copy / paste from an external application or by dragging a URI that points to an image file onto the diagram.</P>
<H2><A name="refs"></A>References</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P>Microsoft Word 2002</P>
<H2><A name="trace"></A>Traceability</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P><SPAN
	style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>RATLC00532856.- Paste of images / text into diagram from outside applications.<BR>
RATLC00141447 - EMF and WMF not supported
</SPAN></P>
<H2><A name="reqs"></A>Requirements</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P><SPAN style="mso-bidi-font-family:Arial;font-size:
13pt">Import
image/graphics into the model project<BR>
Drag &amp; Drop of image/graphics onto the drawing surface<BR>
Copy &amp; past images onto the drawing surface<BR>
Minor manipulation (resizing and/or cropping) of the image/graphic on
the drawing surface&#13;</SPAN><BR>
<SPAN style="mso-bidi-font-family:Arial;font-size:
13pt">Images added
as an icon or as a background to the drawing surface<BR>
UML elements can appear on top or underneath of the image&#13;</SPAN><BR>
<SPAN style="mso-bidi-font-family:Arial;font-size:
13pt">Images should
be inserted by reference. </SPAN><SPAN
	style="mso-bidi-font-family:Arial;font-size:12pt">If an image is used
in multiple diagrams &amp; then the image file content is changed, the
changes automatically appear in all diagrams where it is used&#13;</SPAN></P>
<H2><A name="constraints"></A>Constraints and Limitations</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P><SPAN
	style='font-size:12.0pt;font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'>Copy / paste support won't work on Linux due to an existing bugzilla. See &lt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=70437&gt;<BR>
Copy / paste of WMF/EMF is not supported because there is no vector based transfer flavor supported by JDK 1.4.2. Only image or bitmap based formats can be pasted from outside applications.
</SPAN></P>
<HR>
<H2><A name="usecases" href=""></A>Use Cases</H2>
<P class="backto"><FONT size="2">[<A href="#top">back to top</A>]</FONT></P>
<P>This section describes high-level user interaction use cases. It does not attempt to capture interactions at the code level.</P>
<P>Mini TOC of use cases:</P>
<UL>
	<LI><A href="#uc1">Drag and drop an image file onto the diagram surface</A></LI>
	<LI><A href="#uc2">Drag and drop a non-image file onto the diagram surface</A></LI>
	<LI>Copy and paste an image from an outside application</LI>
	<LI>Resizing an image on the diagram surface</LI>
</UL><H3><A name="uc1"></A>Drag and drop an image file onto the diagram surface</H3>
<P class="backto"><FONT size="2">[<A href="#usecases">back to use cases</A>]</FONT></P>
<P>The user wishes to add an image / picture to the drawing surface.</P>
<P>Preconditions:</P>
<UL>
	<LI>An image file exists on the file system and is in one of the following graphic formats: BMP, JPG, GIF, SVG, WMF</LI>
	<LI>The OS supports drag/drop of files.</LI>
</UL>
<P>Flow of events:</P>
<OL>
	<LI>The user exports from an outside application to an existing file format.</LI>
	<LI>The user selects the file in the OS file navigator and drags it onto the RMP drawing surface.</LI>
	<LI>The cursor changes to an arrow + cursor indicating the drop is permitted.</LI>
</OL>
<P>Postconditions:</P>
<UL>
	<LI>The file is displayed as an image on the drawing surface and appears selected.</LI>
	
</UL>
<P class="notabene"><B>Note:</B> By default this file will loaded into a buffer and stored explicitely inside the notation file. However, clients may wish to override this behavior to suport a by reference storage mechanism. For instance, in the UML product offering the underlying
will be reinterpreted as a UML comment which references the file. However, in this case if the model is transported, then the referenced file would have to be as well in order for the image to display.</P>

<H3><A name="uc2"></A>Drag and drop a non-image image onto the diagram surface</H3>
<UL><LI>
	<P class="backto"><FONT size="2">[<A href="#usecases">back to use cases</A>]</FONT></P>
	<P>The user wishes to add an image / picture to the drawing surface.</P>
	<P>Preconditions:</P>
	<UL>
		<LI>A  file exists on the file system that is in <B>NOT</B> of the
		following graphic formats: BMP, JPG, GIF, SVG, WMF</LI>
		<LI>The OS supports drag/drop of files.</LI>
	</UL>
	<P>Flow of events:</P>
	<OL>
		<LI>The user exports from an outside application to an existing file
		format.</LI>
		<LI>The user selects the file in the OS file navigator and drags it
		onto the RMP drawing surface.</LI>
		<LI>The cursor changes to an arrow + cursor indicating the drop is
		permitted.</LI>
	</OL>
	<P>Postconditions:</P>
	<UL>
		<LI>The file is displayed as a note on the drawing surface and
		appears selected.</LI>
		<LI>The note contains the path of the file.</LI>
	</UL>
	</LI>
</UL><P class="notabene"><B>Note:</B> In the UML product offering the note will be reinterpreted as a UML comment. This allows for the double click gesture where the associated external editor is invoked for the particular file extension.</P>
<H3><A name="uc3"></A>Copy and paste an image from an outside application</H3>
<UL>
	<LI>
	<P class="backto"><FONT size="2">[<A href="#usecases">back to use cases</A>]</FONT></P>
	<P>The user wishes to add an image / picture to the drawing surface.</P>
	<P>Preconditions:</P>
	<UL>
		<LI>An application exists in the OS that can copy selections to an image on the clipboard (i.e. Paint)</LI>
		<LI>The OS supports image copy.</LI>
	</UL>
	<P>Flow of events:</P>
	<OL>
		<LI>The user copies a selection from an outside application.</LI>
		<LI>The user navigates to the RMP diagram surface, right-clicks on the background and choses, Edit / Paste...</LI>
	</OL>
	<P>Postconditions:</P>
	<UL>
		<LI>An image is displayed on the drawing surface and appears selected..</LI></UL>
	</LI>
</UL>
<P class="notabene"><B>Note:</B> Copy / paste from outside applications is not a by reference operation. Multiple pastes will increase the file size by the size of the image buffer on the clipboard..</P>

<H3><A name="uc4"></A>Resizing an image on the diagram surface</H3>
<UL>
	<LI>
	<P class="backto"><FONT size="2">[<A href="#usecases">back to use cases</A>]</FONT></P>
	<P>The user wishes to resize on existing image on the drawing surface.</P>
	<P>Preconditions:</P><UL><LI>The image shape is selected on the drawing surface..</LI>
	</UL>
	<P>Flow of events:</P>
	<OL>
		<LI>The user grabs the selection handles on the image shape and drags to the desired size..</LI></OL>
	<P>Postconditions:</P>
	<UL>
		<LI>The image is rerendered at the new size specified by the handle feedback..</LI>
	</UL>
	</LI>
	
</UL>
<P><BR>
</P>

<P class="question"><B>Future considerations:<BR></B>- Control over brightness and contrast.<BR>
- Cropping functionality - ability to crop - top, left, right or bottom.<BR>- Tiled image support. Specifying a tile size and offset and have the image repeat itself within a shape. This is useful for backgrounds.<BR></P>
<HR>
<P style="margin-left: 0pt"><IMG border="0" src="copyright.gif" width="324" height="14"></P>
</BODY>
</HTML>
